CONTRIBUTION

PROGRAMMER

ENGINE

UNITY

LANGUAGE

C#

TYPE

GAME JAM

The game was created for TOJam 2024: Talk about Fourshadowing with the prompt "It's supposed to do that." In colloboration with 5 others, Gateau Gato: Delicious Chaos was created in the span of 2 days.

Gateau Gato: Delicious Chaos is a wave survival game that has you destroying cake-y enemies and blowing up the mess with your trusty CakeZooka for points. You are equipped with the Invert ability, which allows you to 'invert' dimensions but be careful! Doing so also inverts your controls!

George Brown College
May 10 - 12th 2024

Gateau-Gato: Delicious Chaos was developed during Toronto Game Jam 2024. It was a 3 day jam and was created with a team of 7 people. It was shown at the Closing Speeches stream in the official ToJam server. The game can be seen on the official itch.io jam page.

Inverting Mechanic

One of my resposiblities for the project was implementing the core mechanic: inverting the player, enemies, and the environment!

Inverting the player was simple enough via an integer flip whenever the invert button was pressed (right-mouse button). This same boolean would handle the texture swap of the player's body. To invert enemies, I had the enemy controller handle the enemy's state by listening to the GameManager script and getting the current invert state. But when the enemy would be defeated, the parent where the controller is located would be destroyed and thus would stop listening. This made the enemy's corpses stop reacting to the invert state and caused some dissonance. I fixed this issue by moving the listening part to the children, i.e., the BODY PARTS of the enemy. This way the corpse can still listen to the Game Manager and change states accordingly. To the right you can see the hierarchy breakdown of one of the enemies. The yellow is the parent where the enemy controller is located and where the invert state used to be checked. The green is where the invert state is now checked, and it is for each body part.

The enivornment used a similar strategy, where the geometry itself will listen for the change in invert state and perform the texture swap.

Early concept of the invert affecting enemies & environment

Final pass showing the invert affecting enemies & environment but also player and gun

Wave Management

Wave Spawning

Another one of my resposiblities was handling how waves work and managed. A script called EnemySpawner handles spawning enemies and there are multiple instances of this script in the scene. This script tells the GameManager script when it has spawned a enemy and which one it spawned. The GameManager uses this information to track how many of each type of enemy in the wave it still needs to spawn, and once all of the enemies has spawned, the spawners will cease to spawn enemies and waits until the player clears the remaining enemies to start the next wave.

The game determines how many of each type of enemy should be spawned on any given wave by using an algorithm, this allows a near infinite amount of waves!